<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>CryptoAuthLib: atca_hal.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">CryptoAuthLib
   </div>
   <div id="projectbrief">Microchip CryptoAuthentication Library</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('a00308_source.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">atca_hal.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="a00308.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#ifndef ATCA_HAL_H_</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#define ATCA_HAL_H_</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00128.html">atca_status.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00125.html">atca_iface.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00311.html">atca_start_config.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00314.html">atca_start_iface.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="a03647.html">   49</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    <span class="comment">// interface is a group of function pointers to a specific HAL implementation for this interface type</span></div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    <span class="comment">// so these function pointers are initialized in the HAL layer in order to help keep the ATCAIface object</span></div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    <span class="comment">// from needing to know the low-level details, including global naming of HAL methods and physical implementation.</span></div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="a03647.html#aa020e68c9d18f83f205981fa57107b3c">   54</a></span>&#160;    <a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> (*halinit)(<span class="keywordtype">void</span> *hal, <a class="code" href="a03555.html">ATCAIfaceCfg</a> *cfg);</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="a03647.html#af174424ba7b2d19a74c72f8b4198c26b">   55</a></span>&#160;    <a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> (*halpostinit)(<a class="code" href="a03583.html">ATCAIface</a> iface);</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="a03647.html#a6fb3aee6375216c53ef1e5a9df01e074">   56</a></span>&#160;    <a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> (*halsend)(<a class="code" href="a03583.html">ATCAIface</a> iface, uint8_t *txdata, <span class="keywordtype">int</span> txlength);</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="a03647.html#af95136769fcc864880463d4dcab0c11c">   57</a></span>&#160;    <a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> (*halreceive)(<a class="code" href="a03583.html">ATCAIface</a> iface, uint8_t* rxdata, uint16_t* rxlength);</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="a03647.html#a033c21278fef7771916378cbcf726ae6">   58</a></span>&#160;    <a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> (*halwake)(<a class="code" href="a03583.html">ATCAIface</a> iface);</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="a03647.html#a3939b643c7f807fc8fe8abcf18e99196">   59</a></span>&#160;    <a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> (*halidle)(<a class="code" href="a03583.html">ATCAIface</a> iface);</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="a03647.html#ad2f432748c4d8efe98ec42d5cd1552b5">   60</a></span>&#160;    <a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> (*halsleep)(<a class="code" href="a03583.html">ATCAIface</a> iface);</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="a03647.html#a5eb439f0ede23956fde8cd72f41b85ba">   61</a></span>&#160;    <a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> (*halrelease)(<span class="keywordtype">void</span>* hal_data);</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="a03647.html#ad33508455720b78cc0fc880cb3f9885e">   63</a></span>&#160;    <span class="keywordtype">void</span> *<a class="code" href="a03647.html#ad33508455720b78cc0fc880cb3f9885e">hal_data</a>;       <span class="comment">// points to whatever the HAL implementation for this interface wants it to, HAL manages.</span></div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;} <a class="code" href="a03647.html">ATCAHAL_t</a>;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="keyword">extern</span> <a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#gab77081d6d85ee3ab839a0882e80e9e87">hal_iface_init</a>(<a class="code" href="a03555.html">ATCAIfaceCfg</a> *, <a class="code" href="a03647.html">ATCAHAL_t</a>* hal);</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="keyword">extern</span> <a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#ga4be1afccb41f28f6ce620b1d5197befc">hal_iface_release</a>(<a class="code" href="a03533.html#gac7f674d4a0afb12d2f3c9c5e98cb1089">ATCAIfaceType</a>, <span class="keywordtype">void</span>* hal_data);</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#ga6ce92f1d10000eb6618fc74c2ca92d76">hal_check_wake</a>(<span class="keyword">const</span> uint8_t* response, <span class="keywordtype">int</span> response_size);</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;<span class="comment">// Added one or more of the following defines to your compiler&#39;s defines to include add support for</span></div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="comment">// that particular interface in your application. For example, if you&#39;re writing an I2C to SWI</span></div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="comment">// bridge, add both ATCA_HAL_I2C and ATCA_HAL_SWI defines to your compiler settings and then</span></div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="comment">// include implementations for both interfaces in the HAL.</span></div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<span class="comment">// At least one of these symbols will be defined in the project or makefile for each application</span></div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="comment">//#define ATCA_HAL_I2C</span></div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="comment">//#define ATCA_HAL_SWI</span></div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="comment">//#define ATCA_HAL_SPI</span></div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;<span class="comment">//#define ATCA_HAL_UART</span></div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<span class="comment">//#define ATCA_HAL_KIT_HID</span></div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="comment">//#define ATCA_HAL_KIT_CDC</span></div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;<span class="comment">// forward declare known physical layer APIs that must be implemented by the HAL layer (./hal/xyz) for this interface type</span></div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;<span class="preprocessor">#ifdef ATCA_HAL_I2C</span></div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#ga09e7f465a040fbd19ea136269571de3c">hal_i2c_init</a>(<span class="keywordtype">void</span> *hal, <a class="code" href="a03555.html">ATCAIfaceCfg</a> *cfg);</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#gafbe53519362f18c2688d10da6f7c618f">hal_i2c_post_init</a>(<a class="code" href="a03583.html">ATCAIface</a> iface);</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#gacd0fb31f0f88ef3762665e26b5aa784b">hal_i2c_send</a>(<a class="code" href="a03583.html">ATCAIface</a> iface, uint8_t *txdata, <span class="keywordtype">int</span> txlength);</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#ga7785bcc305c14e2dc188bb1b9a77814a">hal_i2c_receive</a>(<a class="code" href="a03583.html">ATCAIface</a> iface, uint8_t *rxdata, uint16_t *rxlength);</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#gad4df1b6755e2d5b5d9e810371e45ca8c">hal_i2c_wake</a>(<a class="code" href="a03583.html">ATCAIface</a> iface);</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#ga9317303ada721ff3f97e7aad69437a30">hal_i2c_idle</a>(<a class="code" href="a03583.html">ATCAIface</a> iface);</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#ga3f89bae6a625d5f37abdcc99408def27">hal_i2c_sleep</a>(<a class="code" href="a03583.html">ATCAIface</a> iface);</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#gac382cc4431d2d1c721c21a453ba36c22">hal_i2c_release</a>(<span class="keywordtype">void</span> *hal_data);</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#ga05700385437884cc7b28c38d33e84f8c">hal_i2c_discover_buses</a>(<span class="keywordtype">int</span> i2c_buses[], <span class="keywordtype">int</span> max_buses);</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#gac7644e62498a596c09952ee3b28017b9">hal_i2c_discover_devices</a>(<span class="keywordtype">int</span> bus_num, <a class="code" href="a03555.html">ATCAIfaceCfg</a> *cfg, <span class="keywordtype">int</span> *found);</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;<span class="preprocessor">#ifdef ATCA_HAL_SWI</span></div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#gaf406053c1a3f2a86bdc887f2ff4b663d">hal_swi_init</a>(<span class="keywordtype">void</span> *hal, <a class="code" href="a03555.html">ATCAIfaceCfg</a> *cfg);</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#ga9186e5235979216330ae580290872c77">hal_swi_post_init</a>(<a class="code" href="a03583.html">ATCAIface</a> iface);</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#gaeb8b8857192a7710785acce0110e8016">hal_swi_send</a>(<a class="code" href="a03583.html">ATCAIface</a> iface, uint8_t *txdata, <span class="keywordtype">int</span> txlength);</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#ga02e9f36723f0feb21d373898728de04b">hal_swi_receive</a>(<a class="code" href="a03583.html">ATCAIface</a> iface, uint8_t *rxdata, uint16_t *rxlength);</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#gafc428980ec95e37eee94813db229fe70">hal_swi_wake</a>(<a class="code" href="a03583.html">ATCAIface</a> iface);</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#ga618291172976da96c4f02dc9200c845c">hal_swi_idle</a>(<a class="code" href="a03583.html">ATCAIface</a> iface);</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#ga252e365a30f2583dae8a8eac073a9f53">hal_swi_sleep</a>(<a class="code" href="a03583.html">ATCAIface</a> iface);</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#ga196dbc62546b39ac3e556a0f7f6b7132">hal_swi_release</a>(<span class="keywordtype">void</span> *hal_data);</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#ga53864a301dac6efbdbdc3931aa79e23e">hal_swi_discover_buses</a>(<span class="keywordtype">int</span> swi_buses[], <span class="keywordtype">int</span> max_buses);</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#ga354e6fa757688b73e6fb5293bb835def">hal_swi_discover_devices</a>(<span class="keywordtype">int</span> bus_num, <a class="code" href="a03555.html">ATCAIfaceCfg</a> *cfg, <span class="keywordtype">int</span> *found);</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;<span class="preprocessor">#ifdef ATCA_HAL_UART</span></div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_uart_init(<span class="keywordtype">void</span> *hal, <a class="code" href="a03555.html">ATCAIfaceCfg</a> *cfg);</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_uart_post_init(<a class="code" href="a03583.html">ATCAIface</a> iface);</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_uart_send(<a class="code" href="a03583.html">ATCAIface</a> iface, uint8_t *txdata, <span class="keywordtype">int</span> txlength);</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_uart_receive(<a class="code" href="a03583.html">ATCAIface</a> iface, uint8_t *rxdata, uint16_t *rxlength);</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_uart_wake(<a class="code" href="a03583.html">ATCAIface</a> iface);</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_uart_idle(<a class="code" href="a03583.html">ATCAIface</a> iface);</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_uart_sleep(<a class="code" href="a03583.html">ATCAIface</a> iface);</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_uart_release(<a class="code" href="a03583.html">ATCAIface</a> iface);</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_uart_discover_buses(<span class="keywordtype">int</span> uart_buses[], <span class="keywordtype">int</span> max_buses);</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_uart_discover_devices(<span class="keywordtype">int</span> bus_num, <a class="code" href="a03555.html">ATCAIfaceCfg</a> *cfg, <span class="keywordtype">int</span> *found);</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;<span class="preprocessor">#ifdef ATCA_HAL_KIT_CDC</span></div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#ga313bdfc8337f930a7f9fc6ca4e7731d9">hal_kit_cdc_init</a>(<span class="keywordtype">void</span> *hal, <a class="code" href="a03555.html">ATCAIfaceCfg</a> *cfg);</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#gad11b8714818c2b05f70593c002fc5945">hal_kit_cdc_post_init</a>(<a class="code" href="a03583.html">ATCAIface</a> iface);</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#ga7732806c89cd206a96b7fabbaf6770d5">hal_kit_cdc_send</a>(<a class="code" href="a03583.html">ATCAIface</a> iface, uint8_t *txdata, <span class="keywordtype">int</span> txlength);</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#ga3f3972f81de141ff0816b605054d775a">hal_kit_cdc_receive</a>(<a class="code" href="a03583.html">ATCAIface</a> iface, uint8_t *rxdata, uint16_t *rxlength);</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#gabced238b72e636a557d00355a2e44ac9">hal_kit_cdc_wake</a>(<a class="code" href="a03583.html">ATCAIface</a> iface);</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#ga92055a86e32f3dfc9eef064d48aa0870">hal_kit_cdc_idle</a>(<a class="code" href="a03583.html">ATCAIface</a> iface);</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#ga1299c47e6d73d987bc04b16f25637bf6">hal_kit_cdc_sleep</a>(<a class="code" href="a03583.html">ATCAIface</a> iface);</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#ga21a939cc86a0602cb2ba3be3eec26e6e">hal_kit_cdc_release</a>(<span class="keywordtype">void</span> *hal_data);</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#ga56255b770aa5e34b3e69898eaeda93e9">hal_kit_cdc_discover_buses</a>(<span class="keywordtype">int</span> cdc_buses[], <span class="keywordtype">int</span> max_buses);</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#ga0a042c3f441fa78c4f05a18bfbeb5f2d">hal_kit_cdc_discover_devices</a>(<span class="keywordtype">int</span> bus_num, <a class="code" href="a03555.html">ATCAIfaceCfg</a> *cfg, <span class="keywordtype">int</span> *found);</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;<span class="preprocessor">#ifdef ATCA_HAL_KIT_HID</span></div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#ga95b4e99655383680272a1d9354d42479">hal_kit_hid_init</a>(<span class="keywordtype">void</span> *hal, <a class="code" href="a03555.html">ATCAIfaceCfg</a> *cfg);</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#ga6f06bc1662b3d0361f6a241e1b5612f2">hal_kit_hid_post_init</a>(<a class="code" href="a03583.html">ATCAIface</a> iface);</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#ga47588dbefadcc1569513b053a156f3d6">hal_kit_hid_send</a>(<a class="code" href="a03583.html">ATCAIface</a> iface, uint8_t *txdata, <span class="keywordtype">int</span> txlength);</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#gaa80dfd4a91f557329fa1daf16b0f05a8">hal_kit_hid_receive</a>(<a class="code" href="a03583.html">ATCAIface</a> iface, uint8_t *rxdata, uint16_t *rxlength);</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#ga65289262310f2662b2c47450b93c9580">hal_kit_hid_wake</a>(<a class="code" href="a03583.html">ATCAIface</a> iface);</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#gaacf6310945889a6119cab867a1ced5e2">hal_kit_hid_idle</a>(<a class="code" href="a03583.html">ATCAIface</a> iface);</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#ga1aa3345cb5d3e8fc29defe2758904fed">hal_kit_hid_sleep</a>(<a class="code" href="a03583.html">ATCAIface</a> iface);</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#ga8c7b9adb28b4bbdee8d5cd78ab16255f">hal_kit_hid_release</a>(<span class="keywordtype">void</span> *hal_data);</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#ga549d0b53127f1bb10e7f34453b8a2d3c">hal_kit_hid_discover_buses</a>(<span class="keywordtype">int</span> hid_buses[], <span class="keywordtype">int</span> max_buses);</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#ga0121a73c96416c97ce07ed9077226588">hal_kit_hid_discover_devices</a>(<span class="keywordtype">int</span> bus_num, <a class="code" href="a03555.html">ATCAIfaceCfg</a> *cfg, <span class="keywordtype">int</span> *found);</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;<span class="keywordtype">void</span> <a class="code" href="a03537.html#ga7598dfcd6dcac882836544d48356d02f">atca_delay_us</a>(uint32_t delay);</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;<span class="keywordtype">void</span> <a class="code" href="a03537.html#ga19891182689551cc3a88603135959351">atca_delay_10us</a>(uint32_t delay);</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;<span class="keywordtype">void</span> <a class="code" href="a03537.html#ga80a853a202b089064bfc4b159c3418b4">atca_delay_ms</a>(uint32_t delay);</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#gab289a3949663589ac6be71d72fb18278">hal_create_mutex</a>(<span class="keywordtype">void</span> ** ppMutex, <span class="keywordtype">char</span>* pName);</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#ga4589d7b3e951f40b7928f1cf31f7ddf3">hal_destroy_mutex</a>(<span class="keywordtype">void</span> * pMutex);</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#gad4cd02ff7ae4e75844eab4e84eb61994">hal_lock_mutex</a>(<span class="keywordtype">void</span> * pMutex);</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;<a class="code" href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a03537.html#ga31fd8170a49623686543f6247b883bd1">hal_unlock_mutex</a>(<span class="keywordtype">void</span> * pMutex);</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;<span class="preprocessor">#ifdef ATCA_USE_RTOS_TIMER</span></div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;<span class="keywordtype">void</span> atca_delay_ms_internal(uint32_t delay);</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;}</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* ATCA_HAL_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="a03647_html_ad33508455720b78cc0fc880cb3f9885e"><div class="ttname"><a href="a03647.html#ad33508455720b78cc0fc880cb3f9885e">ATCAHAL_t::hal_data</a></div><div class="ttdeci">void * hal_data</div><div class="ttdef"><b>Definition:</b> atca_hal.h:63</div></div>
<div class="ttc" id="a03537_html_ga31fd8170a49623686543f6247b883bd1"><div class="ttname"><a href="a03537.html#ga31fd8170a49623686543f6247b883bd1">hal_unlock_mutex</a></div><div class="ttdeci">ATCA_STATUS hal_unlock_mutex(void *pMutex)</div><div class="ttdef"><b>Definition:</b> hal_freertos.c:117</div></div>
<div class="ttc" id="a03537_html_gaeb8b8857192a7710785acce0110e8016"><div class="ttname"><a href="a03537.html#gaeb8b8857192a7710785acce0110e8016">hal_swi_send</a></div><div class="ttdeci">ATCA_STATUS hal_swi_send(ATCAIface iface, uint8_t *txdata, int txlength)</div><div class="ttdoc">Send byte(s) via SWI. </div><div class="ttdef"><b>Definition:</b> hal_swi_bitbang.c:141</div></div>
<div class="ttc" id="a03537_html_ga354e6fa757688b73e6fb5293bb835def"><div class="ttname"><a href="a03537.html#ga354e6fa757688b73e6fb5293bb835def">hal_swi_discover_devices</a></div><div class="ttdeci">ATCA_STATUS hal_swi_discover_devices(int bus_num, ATCAIfaceCfg cfg[], int *found)</div><div class="ttdoc">discover any CryptoAuth devices on a given logical bus number.This function is curently not supported...</div><div class="ttdef"><b>Definition:</b> hal_swi_bitbang.c:65</div></div>
<div class="ttc" id="a03537_html_ga0121a73c96416c97ce07ed9077226588"><div class="ttname"><a href="a03537.html#ga0121a73c96416c97ce07ed9077226588">hal_kit_hid_discover_devices</a></div><div class="ttdeci">ATCA_STATUS hal_kit_hid_discover_devices(int bus_num, ATCAIfaceCfg cfg[], int *found)</div><div class="ttdoc">discover any CryptoAuth devices on a given logical bus number </div><div class="ttdef"><b>Definition:</b> hal_all_platforms_kit_hidapi.c:66</div></div>
<div class="ttc" id="a03537_html_ga8c7b9adb28b4bbdee8d5cd78ab16255f"><div class="ttname"><a href="a03537.html#ga8c7b9adb28b4bbdee8d5cd78ab16255f">hal_kit_hid_release</a></div><div class="ttdeci">ATCA_STATUS hal_kit_hid_release(void *hal_data)</div><div class="ttdoc">Close the physical port for HID. </div><div class="ttdef"><b>Definition:</b> hal_all_platforms_kit_hidapi.c:371</div></div>
<div class="ttc" id="a03537_html_ga3f3972f81de141ff0816b605054d775a"><div class="ttname"><a href="a03537.html#ga3f3972f81de141ff0816b605054d775a">hal_kit_cdc_receive</a></div><div class="ttdeci">ATCA_STATUS hal_kit_cdc_receive(ATCAIface iface, uint8_t *rxdata, uint16_t *rxsize)</div><div class="ttdoc">HAL implementation of kit protocol receive over USB CDC. </div><div class="ttdef"><b>Definition:</b> hal_linux_kit_cdc.c:330</div></div>
<div class="ttc" id="a03537_html_gafc428980ec95e37eee94813db229fe70"><div class="ttname"><a href="a03537.html#gafc428980ec95e37eee94813db229fe70">hal_swi_wake</a></div><div class="ttdeci">ATCA_STATUS hal_swi_wake(ATCAIface iface)</div><div class="ttdoc">Send Wake flag via SWI. </div><div class="ttdef"><b>Definition:</b> hal_swi_bitbang.c:207</div></div>
<div class="ttc" id="a00128_html_a22bd6643f31f1d75dc3e7ea939f468cd"><div class="ttname"><a href="a00128.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a></div><div class="ttdeci">ATCA_STATUS</div><div class="ttdef"><b>Definition:</b> atca_status.h:41</div></div>
<div class="ttc" id="a03537_html_gafbe53519362f18c2688d10da6f7c618f"><div class="ttname"><a href="a03537.html#gafbe53519362f18c2688d10da6f7c618f">hal_i2c_post_init</a></div><div class="ttdeci">ATCA_STATUS hal_i2c_post_init(ATCAIface iface)</div><div class="ttdoc">HAL implementation of I2C post init. </div><div class="ttdef"><b>Definition:</b> hal_at90usb1287_i2c_asf.c:254</div></div>
<div class="ttc" id="a03537_html_ga7785bcc305c14e2dc188bb1b9a77814a"><div class="ttname"><a href="a03537.html#ga7785bcc305c14e2dc188bb1b9a77814a">hal_i2c_receive</a></div><div class="ttdeci">ATCA_STATUS hal_i2c_receive(ATCAIface iface, uint8_t *rxdata, uint16_t *rxlength)</div><div class="ttdoc">HAL implementation of I2C receive function for ASF I2C. </div><div class="ttdef"><b>Definition:</b> hal_at90usb1287_i2c_asf.c:302</div></div>
<div class="ttc" id="a03537_html_ga6f06bc1662b3d0361f6a241e1b5612f2"><div class="ttname"><a href="a03537.html#ga6f06bc1662b3d0361f6a241e1b5612f2">hal_kit_hid_post_init</a></div><div class="ttdeci">ATCA_STATUS hal_kit_hid_post_init(ATCAIface iface)</div><div class="ttdoc">HAL implementation of Kit HID post init. </div><div class="ttdef"><b>Definition:</b> hal_all_platforms_kit_hidapi.c:150</div></div>
<div class="ttc" id="a03647_html"><div class="ttname"><a href="a03647.html">ATCAHAL_t</a></div><div class="ttdoc">an intermediary data structure to allow the HAL layer to point the standard API functions used by the...</div><div class="ttdef"><b>Definition:</b> atca_hal.h:49</div></div>
<div class="ttc" id="a03537_html_ga7598dfcd6dcac882836544d48356d02f"><div class="ttname"><a href="a03537.html#ga7598dfcd6dcac882836544d48356d02f">atca_delay_us</a></div><div class="ttdeci">void atca_delay_us(uint32_t delay)</div><div class="ttdoc">Timer API implemented at the HAL level. </div><div class="ttdef"><b>Definition:</b> hal_at90usb1287_timer_asf.c:44</div></div>
<div class="ttc" id="a03537_html_gacd0fb31f0f88ef3762665e26b5aa784b"><div class="ttname"><a href="a03537.html#gacd0fb31f0f88ef3762665e26b5aa784b">hal_i2c_send</a></div><div class="ttdeci">ATCA_STATUS hal_i2c_send(ATCAIface iface, uint8_t *txdata, int txlength)</div><div class="ttdoc">HAL implementation of I2C send over ASF. </div><div class="ttdef"><b>Definition:</b> hal_at90usb1287_i2c_asf.c:266</div></div>
<div class="ttc" id="a03537_html_ga9317303ada721ff3f97e7aad69437a30"><div class="ttname"><a href="a03537.html#ga9317303ada721ff3f97e7aad69437a30">hal_i2c_idle</a></div><div class="ttdeci">ATCA_STATUS hal_i2c_idle(ATCAIface iface)</div><div class="ttdoc">idle CryptoAuth device using I2C bus </div><div class="ttdef"><b>Definition:</b> hal_at90usb1287_i2c_asf.c:448</div></div>
<div class="ttc" id="a03537_html_gab77081d6d85ee3ab839a0882e80e9e87"><div class="ttname"><a href="a03537.html#gab77081d6d85ee3ab839a0882e80e9e87">hal_iface_init</a></div><div class="ttdeci">ATCA_STATUS hal_iface_init(ATCAIfaceCfg *, ATCAHAL_t *hal)</div><div class="ttdoc">Standard HAL API for ATCA to initialize a physical interface. </div><div class="ttdef"><b>Definition:</b> atca_hal.c:44</div></div>
<div class="ttc" id="a03537_html_gaf406053c1a3f2a86bdc887f2ff4b663d"><div class="ttname"><a href="a03537.html#gaf406053c1a3f2a86bdc887f2ff4b663d">hal_swi_init</a></div><div class="ttdeci">ATCA_STATUS hal_swi_init(void *hal, ATCAIfaceCfg *cfg)</div><div class="ttdoc">hal_swi_init manages requests to initialize a physical interface. It manages use counts so when an in...</div><div class="ttdef"><b>Definition:</b> hal_swi_bitbang.c:88</div></div>
<div class="ttc" id="a03537_html_gaacf6310945889a6119cab867a1ced5e2"><div class="ttname"><a href="a03537.html#gaacf6310945889a6119cab867a1ced5e2">hal_kit_hid_idle</a></div><div class="ttdeci">ATCA_STATUS hal_kit_hid_idle(ATCAIface iface)</div><div class="ttdoc">Call the idle for kit protocol. </div><div class="ttdef"><b>Definition:</b> hal_all_platforms_kit_hidapi.c:351</div></div>
<div class="ttc" id="a03537_html_gad4cd02ff7ae4e75844eab4e84eb61994"><div class="ttname"><a href="a03537.html#gad4cd02ff7ae4e75844eab4e84eb61994">hal_lock_mutex</a></div><div class="ttdeci">ATCA_STATUS hal_lock_mutex(void *pMutex)</div><div class="ttdef"><b>Definition:</b> hal_freertos.c:100</div></div>
<div class="ttc" id="a03537_html_ga4589d7b3e951f40b7928f1cf31f7ddf3"><div class="ttname"><a href="a03537.html#ga4589d7b3e951f40b7928f1cf31f7ddf3">hal_destroy_mutex</a></div><div class="ttdeci">ATCA_STATUS hal_destroy_mutex(void *pMutex)</div><div class="ttdef"><b>Definition:</b> hal_freertos.c:88</div></div>
<div class="ttc" id="a03537_html_ga19891182689551cc3a88603135959351"><div class="ttname"><a href="a03537.html#ga19891182689551cc3a88603135959351">atca_delay_10us</a></div><div class="ttdeci">void atca_delay_10us(uint32_t delay)</div><div class="ttdoc">This function delays for a number of tens of microseconds. </div><div class="ttdef"><b>Definition:</b> hal_at90usb1287_timer_asf.c:54</div></div>
<div class="ttc" id="a03537_html_ga05700385437884cc7b28c38d33e84f8c"><div class="ttname"><a href="a03537.html#ga05700385437884cc7b28c38d33e84f8c">hal_i2c_discover_buses</a></div><div class="ttdeci">ATCA_STATUS hal_i2c_discover_buses(int i2c_buses[], int max_buses)</div><div class="ttdoc">discover i2c buses available for this hardware this maintains a list of logical to physical bus mappi...</div><div class="ttdef"><b>Definition:</b> hal_at90usb1287_i2c_asf.c:61</div></div>
<div class="ttc" id="a03555_html"><div class="ttname"><a href="a03555.html">ATCAIfaceCfg</a></div><div class="ttdef"><b>Definition:</b> atca_iface.h:66</div></div>
<div class="ttc" id="a03537_html_ga1aa3345cb5d3e8fc29defe2758904fed"><div class="ttname"><a href="a03537.html#ga1aa3345cb5d3e8fc29defe2758904fed">hal_kit_hid_sleep</a></div><div class="ttdeci">ATCA_STATUS hal_kit_hid_sleep(ATCAIface iface)</div><div class="ttdoc">Call the sleep for kit protocol. </div><div class="ttdef"><b>Definition:</b> hal_all_platforms_kit_hidapi.c:361</div></div>
<div class="ttc" id="a03537_html_gac7644e62498a596c09952ee3b28017b9"><div class="ttname"><a href="a03537.html#gac7644e62498a596c09952ee3b28017b9">hal_i2c_discover_devices</a></div><div class="ttdeci">ATCA_STATUS hal_i2c_discover_devices(int bus_num, ATCAIfaceCfg cfg[], int *found)</div><div class="ttdoc">discover any CryptoAuth devices on a given logical bus number </div><div class="ttdef"><b>Definition:</b> hal_at90usb1287_i2c_asf.c:82</div></div>
<div class="ttc" id="a00314_html"><div class="ttname"><a href="a00314.html">atca_start_iface.h</a></div></div>
<div class="ttc" id="a03537_html_ga53864a301dac6efbdbdc3931aa79e23e"><div class="ttname"><a href="a03537.html#ga53864a301dac6efbdbdc3931aa79e23e">hal_swi_discover_buses</a></div><div class="ttdeci">ATCA_STATUS hal_swi_discover_buses(int swi_buses[], int max_buses)</div><div class="ttdoc">discover swi buses available for this hardware this maintains a list of logical to physical bus mappi...</div><div class="ttdef"><b>Definition:</b> hal_swi_bitbang.c:54</div></div>
<div class="ttc" id="a03537_html_ga21a939cc86a0602cb2ba3be3eec26e6e"><div class="ttname"><a href="a03537.html#ga21a939cc86a0602cb2ba3be3eec26e6e">hal_kit_cdc_release</a></div><div class="ttdeci">ATCA_STATUS hal_kit_cdc_release(void *hal_data)</div><div class="ttdoc">Close the physical port for CDC over USB CDC. </div><div class="ttdef"><b>Definition:</b> hal_linux_kit_cdc.c:370</div></div>
<div class="ttc" id="a03537_html_gad4df1b6755e2d5b5d9e810371e45ca8c"><div class="ttname"><a href="a03537.html#gad4df1b6755e2d5b5d9e810371e45ca8c">hal_i2c_wake</a></div><div class="ttdeci">ATCA_STATUS hal_i2c_wake(ATCAIface iface)</div><div class="ttdoc">wake up CryptoAuth device using I2C bus </div><div class="ttdef"><b>Definition:</b> hal_at90usb1287_i2c_asf.c:392</div></div>
<div class="ttc" id="a03537_html_ga196dbc62546b39ac3e556a0f7f6b7132"><div class="ttname"><a href="a03537.html#ga196dbc62546b39ac3e556a0f7f6b7132">hal_swi_release</a></div><div class="ttdeci">ATCA_STATUS hal_swi_release(void *hal_data)</div><div class="ttdoc">Manages reference count on given bus and releases resource if no more reference(s) exist...</div><div class="ttdef"><b>Definition:</b> hal_swi_bitbang.c:279</div></div>
<div class="ttc" id="a03537_html_ga47588dbefadcc1569513b053a156f3d6"><div class="ttname"><a href="a03537.html#ga47588dbefadcc1569513b053a156f3d6">hal_kit_hid_send</a></div><div class="ttdeci">ATCA_STATUS hal_kit_hid_send(ATCAIface iface, uint8_t *txdata, int txlength)</div><div class="ttdoc">HAL implementation of kit protocol send over USB HID. </div><div class="ttdef"><b>Definition:</b> hal_all_platforms_kit_hidapi.c:319</div></div>
<div class="ttc" id="a03537_html_gabced238b72e636a557d00355a2e44ac9"><div class="ttname"><a href="a03537.html#gabced238b72e636a557d00355a2e44ac9">hal_kit_cdc_wake</a></div><div class="ttdeci">ATCA_STATUS hal_kit_cdc_wake(ATCAIface iface)</div><div class="ttdoc">Call the wake for kit protocol over USB CDC. </div><div class="ttdef"><b>Definition:</b> hal_linux_kit_cdc.c:340</div></div>
<div class="ttc" id="a03583_html"><div class="ttname"><a href="a03583.html">atca_iface</a></div><div class="ttdoc">atca_iface is the C object backing ATCAIface. See the atca_iface.h file for details on the ATCAIface ...</div><div class="ttdef"><b>Definition:</b> atca_iface.h:129</div></div>
<div class="ttc" id="a03537_html_gab289a3949663589ac6be71d72fb18278"><div class="ttname"><a href="a03537.html#gab289a3949663589ac6be71d72fb18278">hal_create_mutex</a></div><div class="ttdeci">ATCA_STATUS hal_create_mutex(void **ppMutex, char *pName)</div><div class="ttdoc">Optional hal interfaces. </div><div class="ttdef"><b>Definition:</b> hal_freertos.c:69</div></div>
<div class="ttc" id="a03537_html_ga4be1afccb41f28f6ce620b1d5197befc"><div class="ttname"><a href="a03537.html#ga4be1afccb41f28f6ce620b1d5197befc">hal_iface_release</a></div><div class="ttdeci">ATCA_STATUS hal_iface_release(ATCAIfaceType, void *hal_data)</div><div class="ttdoc">releases a physical interface, HAL knows how to interpret hal_data </div><div class="ttdef"><b>Definition:</b> atca_hal.c:149</div></div>
<div class="ttc" id="a03537_html_ga1299c47e6d73d987bc04b16f25637bf6"><div class="ttname"><a href="a03537.html#ga1299c47e6d73d987bc04b16f25637bf6">hal_kit_cdc_sleep</a></div><div class="ttdeci">ATCA_STATUS hal_kit_cdc_sleep(ATCAIface iface)</div><div class="ttdoc">Call the sleep for kit protocol over USB CDC. </div><div class="ttdef"><b>Definition:</b> hal_linux_kit_cdc.c:360</div></div>
<div class="ttc" id="a00125_html"><div class="ttname"><a href="a00125.html">atca_iface.h</a></div><div class="ttdoc">Microchip Crypto Auth hardware interface object. </div></div>
<div class="ttc" id="a03537_html_ga02e9f36723f0feb21d373898728de04b"><div class="ttname"><a href="a03537.html#ga02e9f36723f0feb21d373898728de04b">hal_swi_receive</a></div><div class="ttdeci">ATCA_STATUS hal_swi_receive(ATCAIface iface, uint8_t *rxdata, uint16_t *rxlength)</div><div class="ttdoc">Receive byte(s) via SWI. </div><div class="ttdef"><b>Definition:</b> hal_swi_bitbang.c:167</div></div>
<div class="ttc" id="a03537_html_ga0a042c3f441fa78c4f05a18bfbeb5f2d"><div class="ttname"><a href="a03537.html#ga0a042c3f441fa78c4f05a18bfbeb5f2d">hal_kit_cdc_discover_devices</a></div><div class="ttdeci">ATCA_STATUS hal_kit_cdc_discover_devices(int bus_num, ATCAIfaceCfg *cfg, int *found)</div><div class="ttdoc">discover any CryptoAuth devices on a given logical bus number </div><div class="ttdef"><b>Definition:</b> hal_linux_kit_cdc.c:419</div></div>
<div class="ttc" id="a00311_html"><div class="ttname"><a href="a00311.html">atca_start_config.h</a></div></div>
<div class="ttc" id="a03537_html_ga313bdfc8337f930a7f9fc6ca4e7731d9"><div class="ttname"><a href="a03537.html#ga313bdfc8337f930a7f9fc6ca4e7731d9">hal_kit_cdc_init</a></div><div class="ttdeci">ATCA_STATUS hal_kit_cdc_init(void *hal, ATCAIfaceCfg *cfg)</div><div class="ttdoc">HAL implementation of Kit USB CDC init. </div><div class="ttdef"><b>Definition:</b> hal_linux_kit_cdc.c:102</div></div>
<div class="ttc" id="a03537_html_ga618291172976da96c4f02dc9200c845c"><div class="ttname"><a href="a03537.html#ga618291172976da96c4f02dc9200c845c">hal_swi_idle</a></div><div class="ttdeci">ATCA_STATUS hal_swi_idle(ATCAIface iface)</div><div class="ttdoc">Send Idle flag via SWI. </div><div class="ttdef"><b>Definition:</b> hal_swi_bitbang.c:239</div></div>
<div class="ttc" id="a03537_html_ga6ce92f1d10000eb6618fc74c2ca92d76"><div class="ttname"><a href="a03537.html#ga6ce92f1d10000eb6618fc74c2ca92d76">hal_check_wake</a></div><div class="ttdeci">ATCA_STATUS hal_check_wake(const uint8_t *response, int response_size)</div><div class="ttdoc">Utility function for hal_wake to check the reply. </div><div class="ttdef"><b>Definition:</b> atca_hal.c:203</div></div>
<div class="ttc" id="a03537_html_ga9186e5235979216330ae580290872c77"><div class="ttname"><a href="a03537.html#ga9186e5235979216330ae580290872c77">hal_swi_post_init</a></div><div class="ttdeci">ATCA_STATUS hal_swi_post_init(ATCAIface iface)</div><div class="ttdoc">HAL implementation of SWI post init. </div><div class="ttdef"><b>Definition:</b> hal_swi_bitbang.c:128</div></div>
<div class="ttc" id="a03537_html_ga65289262310f2662b2c47450b93c9580"><div class="ttname"><a href="a03537.html#ga65289262310f2662b2c47450b93c9580">hal_kit_hid_wake</a></div><div class="ttdeci">ATCA_STATUS hal_kit_hid_wake(ATCAIface iface)</div><div class="ttdoc">Call the wake for kit protocol. </div><div class="ttdef"><b>Definition:</b> hal_all_platforms_kit_hidapi.c:341</div></div>
<div class="ttc" id="a03537_html_ga09e7f465a040fbd19ea136269571de3c"><div class="ttname"><a href="a03537.html#ga09e7f465a040fbd19ea136269571de3c">hal_i2c_init</a></div><div class="ttdeci">ATCA_STATUS hal_i2c_init(void *hal, ATCAIfaceCfg *cfg)</div><div class="ttdoc">initialize an I2C interface using given config </div><div class="ttdef"><b>Definition:</b> hal_at90usb1287_i2c_asf.c:215</div></div>
<div class="ttc" id="a03537_html_ga7732806c89cd206a96b7fabbaf6770d5"><div class="ttname"><a href="a03537.html#ga7732806c89cd206a96b7fabbaf6770d5">hal_kit_cdc_send</a></div><div class="ttdeci">ATCA_STATUS hal_kit_cdc_send(ATCAIface iface, uint8_t *txdata, int txlength)</div><div class="ttdoc">HAL implementation of kit protocol send over USB CDC. </div><div class="ttdef"><b>Definition:</b> hal_linux_kit_cdc.c:317</div></div>
<div class="ttc" id="a03537_html_ga549d0b53127f1bb10e7f34453b8a2d3c"><div class="ttname"><a href="a03537.html#ga549d0b53127f1bb10e7f34453b8a2d3c">hal_kit_hid_discover_buses</a></div><div class="ttdeci">ATCA_STATUS hal_kit_hid_discover_buses(int i2c_buses[], int max_buses)</div><div class="ttdoc">discover cdc buses available for this hardware this maintains a list of logical to physical bus mappi...</div><div class="ttdef"><b>Definition:</b> hal_all_platforms_kit_hidapi.c:56</div></div>
<div class="ttc" id="a03537_html_ga252e365a30f2583dae8a8eac073a9f53"><div class="ttname"><a href="a03537.html#ga252e365a30f2583dae8a8eac073a9f53">hal_swi_sleep</a></div><div class="ttdeci">ATCA_STATUS hal_swi_sleep(ATCAIface iface)</div><div class="ttdoc">Send Sleep flag via SWI. </div><div class="ttdef"><b>Definition:</b> hal_swi_bitbang.c:258</div></div>
<div class="ttc" id="a03537_html_ga80a853a202b089064bfc4b159c3418b4"><div class="ttname"><a href="a03537.html#ga80a853a202b089064bfc4b159c3418b4">atca_delay_ms</a></div><div class="ttdeci">void atca_delay_ms(uint32_t delay)</div><div class="ttdoc">This function delays for a number of milliseconds. </div><div class="ttdef"><b>Definition:</b> hal_at90usb1287_timer_asf.c:69</div></div>
<div class="ttc" id="a03537_html_gad11b8714818c2b05f70593c002fc5945"><div class="ttname"><a href="a03537.html#gad11b8714818c2b05f70593c002fc5945">hal_kit_cdc_post_init</a></div><div class="ttdeci">ATCA_STATUS hal_kit_cdc_post_init(ATCAIface iface)</div><div class="ttdoc">HAL implementation of Kit USB CDC post init. </div><div class="ttdef"><b>Definition:</b> hal_linux_kit_cdc.c:167</div></div>
<div class="ttc" id="a03537_html_ga92055a86e32f3dfc9eef064d48aa0870"><div class="ttname"><a href="a03537.html#ga92055a86e32f3dfc9eef064d48aa0870">hal_kit_cdc_idle</a></div><div class="ttdeci">ATCA_STATUS hal_kit_cdc_idle(ATCAIface iface)</div><div class="ttdoc">Call the idle for kit protocol over USB CDC. </div><div class="ttdef"><b>Definition:</b> hal_linux_kit_cdc.c:350</div></div>
<div class="ttc" id="a03537_html_gaa80dfd4a91f557329fa1daf16b0f05a8"><div class="ttname"><a href="a03537.html#gaa80dfd4a91f557329fa1daf16b0f05a8">hal_kit_hid_receive</a></div><div class="ttdeci">ATCA_STATUS hal_kit_hid_receive(ATCAIface iface, uint8_t *rxdata, uint16_t *rxsize)</div><div class="ttdoc">HAL implementation of send over USB HID. </div><div class="ttdef"><b>Definition:</b> hal_all_platforms_kit_hidapi.c:331</div></div>
<div class="ttc" id="a03537_html_ga3f89bae6a625d5f37abdcc99408def27"><div class="ttname"><a href="a03537.html#ga3f89bae6a625d5f37abdcc99408def27">hal_i2c_sleep</a></div><div class="ttdeci">ATCA_STATUS hal_i2c_sleep(ATCAIface iface)</div><div class="ttdoc">sleep CryptoAuth device using I2C bus </div><div class="ttdef"><b>Definition:</b> hal_at90usb1287_i2c_asf.c:476</div></div>
<div class="ttc" id="a03537_html_ga56255b770aa5e34b3e69898eaeda93e9"><div class="ttname"><a href="a03537.html#ga56255b770aa5e34b3e69898eaeda93e9">hal_kit_cdc_discover_buses</a></div><div class="ttdeci">ATCA_STATUS hal_kit_cdc_discover_buses(int cdc_buses[], int max_buses)</div><div class="ttdoc">discover cdc buses available for this hardware this maintains a list of logical to physical bus mappi...</div><div class="ttdef"><b>Definition:</b> hal_linux_kit_cdc.c:406</div></div>
<div class="ttc" id="a03533_html_gac7f674d4a0afb12d2f3c9c5e98cb1089"><div class="ttname"><a href="a03533.html#gac7f674d4a0afb12d2f3c9c5e98cb1089">ATCAIfaceType</a></div><div class="ttdeci">ATCAIfaceType</div><div class="ttdef"><b>Definition:</b> atca_iface.h:44</div></div>
<div class="ttc" id="a00128_html"><div class="ttname"><a href="a00128.html">atca_status.h</a></div><div class="ttdoc">Microchip Crypto Auth status codes. </div></div>
<div class="ttc" id="a03537_html_ga95b4e99655383680272a1d9354d42479"><div class="ttname"><a href="a03537.html#ga95b4e99655383680272a1d9354d42479">hal_kit_hid_init</a></div><div class="ttdeci">ATCA_STATUS hal_kit_hid_init(void *hal, ATCAIfaceCfg *cfg)</div><div class="ttdoc">HAL implementation of Kit USB HID init. </div><div class="ttdef"><b>Definition:</b> hal_all_platforms_kit_hidapi.c:76</div></div>
<div class="ttc" id="a03537_html_gac382cc4431d2d1c721c21a453ba36c22"><div class="ttname"><a href="a03537.html#gac382cc4431d2d1c721c21a453ba36c22">hal_i2c_release</a></div><div class="ttdeci">ATCA_STATUS hal_i2c_release(void *hal_data)</div><div class="ttdoc">manages reference count on given bus and releases resource if no more refences exist ...</div><div class="ttdef"><b>Definition:</b> hal_at90usb1287_i2c_asf.c:503</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_97aefd0d527b934f1d99a682da8fe6a9.html">lib</a></li><li class="navelem"><a class="el" href="dir_e870e4dac26de7990352b1cb7547818f.html">hal</a></li><li class="navelem"><a class="el" href="a00308.html">atca_hal.h</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
  </ul>
</div>
</body>
</html>
